-- KEYS[1]: 库存key
-- KEYS[2]: 订单key
-- ARGV[1]: 用户ID
-- ARGV[2]: 购买数量

local stock = tonumber(redis.call('get', KEYS[1])) or 0
local quantity = tonumber(ARGV[2])

-- 添加参数校验
if quantity <= 0 then
    return -1 -- 表示数量参数不合法
end

--检查库存
if stock <= 0 or stock < quantity then
    return 0
end

--扣减库存，增加记录
redis.call('decrby', KEYS[1], quantity)
redis.call('hset', KEYS[2], ARGV[1], quantity)

return 1